Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

149
Visualizações
Vuex | Ser capaz de actualizar fuera de una mutación

Estoy tratando de actualizar el estado de una acción que se controla a través de Vuex. Lo sé inicialmente, no puedo actualizar el estado de la acción sin hacerlo directamente a través de una mutación. Sin embargo, realmente no quería hacer eso porque estoy tratando de usarlo en una devolución de llamada. Así que intenté clonar esta matriz de acciones y luego usar esta variable. Sin embargo, esto parece producir el mismo error:

no mutar el estado de la tienda vuex fuera de los controladores de mutación

Cada vez que mi modal cambia, agrego un observador, que verifica si el modal tiene acciones y si lo "clona" en una variable local usando un bucle for.

 @Watch('modal') onModalChanged(modal: ModalData) { if (modal && modal.actions) { for (let i = 0; i < modal.actions.length; i++) { this.actions[i] = modal.actions[i]; } } }

Luego tengo un bucle v-for dentro de mi plantilla que recorre la variable local de acciones y realiza un @click .

La acción se configura de la siguiente manera al construir el modal:

 modalStore.show({ ..., actions: [ { text: 'Save', theme: 'positive', click: (action: Action) => { } } ] });

Dentro del método de clic, quiero poder establecer el estado de carga de la acción, es decir

 click: (action: Action) => { action.loading = true; }

De esta manera, puedo determinar si el botón debe mostrar un estado de carga, pero aquí es donde radica el problema, ya que obtengo la tienda no mutar vuex.

¿Tengo que pasar por un estado, ya que esto es con modales, podría haber múltiples, lo que significaría que tendría que hacer un método como el siguiente:

 updateButtonState(modal: ModalData, actionIndex: number, loading: boolean) { modal.actions[actionIndex].loading = true; }

Pero en el momento de crear el modal, no tengo una referencia para pasar el modal.

¿Hay una solución o una mejor manera de abordar esto?

El método mínimo de action.loading = true sería ideal, aunque sé que esto podría no ser posible.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

En primer lugar, debe saber que los objetos (las matrices también son objetos) se relacionan por enlace, no por valor. Entonces, si desea hacer una copia de una matriz, debe hacer esto this.copy = [...this.original] y luego podrá cambiar la matriz de copia sin cambiar la original de la tienda. Pero si también necesita actualizarlo en la tienda, la única forma es hacerlo con mutaciones. En esta mutación, puede pasar un objeto con el índice de una matriz, el valor que puede guardar, etc.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda